ความซับซ้อนด้านเวลา (Time Complexity) ไม่ใช่การวัดระยะเวลาทำงานในหน่วยวินาทีอย่างแน่นอน แต่เป็นฟังก์ชันทางคณิตศาสตร์ที่อธิบายว่าเวลาในการทำงานของอัลกอริทึมจะเพิ่มขึ้นอย่างไรเมื่อขนาดปัญหา $n$ เพิ่มขึ้น มันตั้งอยู่บนหลักการสำคัญว่า 'การวิเคราะห์อัลกอริทึมเป็นการวัดผลที่ไม่ขึ้นกับการประยุกต์ใช้งาน'
เหตุผลที่มันเป็นภาษาสากลคืออะไร?
- การวัดการเปลี่ยนแปลงเชิงปริมาณการเขียนแบบโอ (Big O) ละเลยพจน์ระดับต่ำและค่าคงที่ โฟกัสเฉพาะระดับจำนวน (Order of Magnitude)។
- ความแน่นอนของการวัดนักพัฒนาโดยทั่วไปใช้กรณีแย่ที่สุด (Worst Case) เป็นเกณฑ์มาตรฐาน เพื่อให้มั่นใจในระดับประสิทธิภาพขั้นต่ำ
- การตัดสินใจข้ามสภาพแวดล้อมไม่ว่าจะอยู่บนคอมพิวเตอร์ซูเปอร์หรือชิปฝังตัว การปรับปรุงจาก $O(n^2)$ เป็น $O(n \log n)$ ก็ให้ผลประโยชน์ที่สำคัญอย่างแท้จริง
วิธีการนับ (Counting)
นับจำนวนครั้งที่ตัวอักษรแต่ละตัวปรากฏในสองสายอักขระ หากรายการนับตัวอักษรเหมือนกัน สายอักขระทั้งสองต้องเป็นคำสลับลำดับกัน วิธีนี้ทำให้ได้ประสิทธิภาพ วิธีนับ: $O(n)$ ที่มีประสิทธิภาพสูง